 
; WALTER

  -60 TO B
  -5 TO Z
  1 TO I
  IF Y>192 0 TO I
  IF Y<64 0 TO I
  IF Y>128 GOTO NORTH
  60 TO B
  5 TO Z

NORTH

  IF X<128 GOTO EAST
  270 TO C TO AIM
  -240 TO A
  GOTO RUN

EAST

  90 TO C TO AIM
  240 TO A

RUN

  A TO SPEEDX
  B TO SPEEDY
  C TO AIM TO RADAR
  IF RADAR<0 GOTO POP
  RADAR/160 TO D TO E
  GOTO AHEAD

MOVE

  IF RADAR<226 GOTO AHEAD

STOP

  0-A TO A TO SPEEDX
  I+1 TO I
  IF I<4 GOTO BOUNCE
  0 TO I
  0-B TO B
  0-Z TO Z
  
BOUNCE

  B TO SPEEDY
  C+180 TO C
  GOTO RUN

AHEAD

  IF I=3 GOSUB CHECK
  D*A TO SPEEDX
  3*E*B/4 TO SPEEDY
  C TO AIM
  AIM TO RADAR
  IF RADAR>0 GOTO GO

POP

  0-RADAR TO SHOT
  0 TO SPEEDX TO SPEEDY
  0-A/B+AIM TO AIM
  GOTO SHOOT

GO

  IF RADAR<30 GOTO STOP
  RADAR/160 TO D TO E
  
BEHIND

  IF I=3 GOSUB CHECK
  D*A TO SPEEDX
  3*E*B/4 TO SPEEDY
  C+180 TO AIM
  AIM TO RADAR
  IF RADAR>0 GOTO MOVE
  10-RADAR TO SHOT
  0 TO SPEEDX TO SPEEDY
  A/B + AIM TO AIM
  GOTO FIRE

SHOOT

  AIM TO RADAR
  IF RADAR>0 GOTO EXIT
  0-RADAR TO SHOT
  GOTO SHOOT

EXIT

  A TO SPEEDX
  B TO SPEEDY
  RADAR/160 TO D TO E
  GOTO AHEAD

FIRE

  AIM TO RADAR
  IF RADAR >0 GOTO LEAVE
  0-RADAR TO SHOT
  GOTO FIRE

LEAVE

  3-I TO I
  0-A TO A
  0-B TO B
  A TO SPEEDX
  B TO SPEEDY
  0-Z TO Z
  C+180 TO C
  RADAR/160 TO D TO E
  GOTO AHEAD

CHECK

  Z+204 TO Q
  GOTO Q
  Y-5/Y*E TO E
  D*3/4 TO D
  ENDSUB
  256-Y TO V
  251-Y/V*E TO E
  D*3/4 TO D
  ENDSUB
